// 定义接口全部接口返回数据都拥有的数据类型
export interface ResponseData {
    result: string,
    code: number,
    msg: string
}

// 登录接口需要携带的参数的ts类型
export interface loginFormData {
    userAccount: string,
    password: string
}
// 用户登录接口 返回的ts数据类型
// 登录接口返回的数据类型
export interface loginResponseData extends ResponseData {
    data: {
        token: string,
        menuList: MenuList
    }
}

// 单个路由菜单的ts类型
export interface Menu {
    id: number | string,
    menuName: string,
    menuCode: string,
    parentCode: string,
    pagePath: string,
    frontEndRouter: string,
    icon: string,
    childMenuList?: MenuList
}
// 全部路由的ts数据类型
export type MenuList = Menu[]
// 用户信息接口 代表一个用户信息的ts数据类型
export interface UserInfo {
    userId?: number,
    roleId?: number,
    roleName?: string,
    username?: string,
    userAccount?: string,
    userTel?: string,
    email?: string,
    balance?: string,
    name?: string,
    avatarUrl?: string,
    remark?: string,
    isSuperAdmin?: number,
    enable?: number,
    password?: ''
}
// 所有用户
export type AllUserInfo = UserInfo[]
// 获取 用户信息接口 返回数据的ts类型
export interface UserInfoResponseData extends ResponseData {
    data: UserInfo
}

// 分页信息 接口携带数据的ts类型
export interface GetPageData {
    currentPage: number,
    keyword?: string,
    pageSize: number,
    status?: number,
    type?: number
}
// 修改用户角色 接口携带参数ts
export interface UpdateUserRoleData {
    enable?: number,
    roleI?: number,
    userId: number
}
// 分页器接口返回数据的ts
export interface GetUserListResponseData extends ResponseData {
    data: {
        pageSize: number,
        currentPage: number,
        totalPage: number,
        totals: number,
        list: AllUserInfo
    }
}
// 单个角色ts
export interface UserRole {
    id: number | string,
    roleName: string,
    roleCode: string,
    remark: string,
    enable: number
}
// 所有用户角色
export type AllUserRoles = UserInfo[]
// 获取用户角色接口ts
export interface GetUserRoleInfoResponse extends ResponseData {
    data: AllUserRoles
}
// 一个管理员角色 ts
export interface AdminRole {
    id?: number | string,
    roleName?: string,
    roleCode?: string,
    remark?: string,
    enable?: number
}
// 所有管理员角色 ts
export type AllAdminRole = AdminRole[]
// 获取管理员角色列表 接口
export interface GetAdminRoleResponseData extends ResponseData {
    data: AllAdminRole
}
// 获取角色菜单接口返回数据ts
export interface GetAdminRoleMenuResponseData extends ResponseData {
    data: number[]
}
// 获取菜单
export interface GetMenuResponseData extends ResponseData {
    data: MenuList
}

// 修改密码接口 携带参数ts
export interface passwordData {
    newPassword: string,
    password: string,
    renewPassword: string
}


